package com.qf.chat.commons.utils;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 存储验证码
 *
 * 线程安全问题:
 * 1、多线程
 * 2、同一个数据
 * 3、有增删改
 *
 *
 */
public class CodesUtils {

    /**
     * Map - 当前机器的内存中 实际开发应该存Redis
     * key - 用户名
     * value - 验证码
     */
    private static Map<String, Integer> codes = new ConcurrentHashMap<>();

    //ArrayList HashSet HashMap (value覆盖)
    //线程1 -> admin - 3561
    //线程2 -> root - 1374
    public static void putCode(String username, Integer code){
        codes.put(username, code);
    }

    public static Integer getCode(String username){
        return codes.get(username);
    }

    public static void remove(String username) {
        codes.remove(username);
    }
}
